﻿@model HandmadeShop.Application.Models.CreateProductModel
@{
    ViewBag.Title = "Sản phẩm";
    ViewBag.Location = "Product/Create";
    List<SelectListItem> productType = (List<SelectListItem>)ViewBag.ProductType;
    bool isEmpty = false;
}

@section header {
    <script src="@Url.Content("~/Scripts/autoNumeric.js")" type="text/javascript"></script>
}

<section class="content-wrapper main-content clear-fix">
    <div class="group-form">
        <div class="group-form-header">
            <h3 class="sub-title uppercase">@ViewBag.Title</h3>
            <h1 class="title uppercase">Tạo mới</h1>
        </div>
    <div id="product-create" class="group-form-body">
    @using (Html.BeginForm("Create", "Product", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <div>
            @{
                isEmpty = !(productType != null && productType.Count > 0);
                <span class="hide" id="IsCreateNewType">@isEmpty</span>
                if (isEmpty)
                {
                    <div class="hide">
                        @Html.DropDownList("ProductType")
                        @Html.TextBox("isCreateNewType", "1")
                    </div>
                    <div id="group-type">
                        @Html.TextBoxFor(m => m.ProductTypeCode, new { placeholder = "Mã danh mục", value = "" })
                        @Html.TextBoxFor(m => m.ProductTypeName, new { placeholder = "Tên danh mục", value = "" })
                    </div>
                }
                else
                {
                    <div>
                        <h3>Danh mục (<a href="#" id="add-type" style="border-bottom: 0;"> Thêm mới </a>)</h3>
                        @Html.DropDownList("ProductType")
                        @Html.TextBox("isCreateNewType", "0", new { @class = "hide" })
                        
                    </div>
                    <div class="hide" id="group-type">
                        @Html.TextBoxFor(m => m.ProductTypeCode, new { placeholder = "Mã danh mục", value = "" })
                        @Html.TextBoxFor(m => m.ProductTypeName, new { placeholder = "Tên danh mục", value = "" })
                    </div>
                }
            }
            
            
        </div>
        <div>
            @Html.TextBoxFor(m => m.Code, new { placeholder = "Mã sản phẩm" })
        </div>
        <div>
            @Html.TextBoxFor(m => m.Name, new { placeholder = "Tên sản phẩm" })
        </div>
        <div>
            @Html.TextBoxFor(m => m.Description, new { placeholder = "Miêu tả" })
        </div>
        <div>
            @Html.TextBoxFor(m => m.Price, new { placeholder = "Giá tiền", @class = "currency", data_a_sep = ".", data_a_dec = "," })
        </div>
        <div>
            <input type="file" id="file" name="file"/>
        </div>
        <div>
            <br />
            <input type="submit" value="Tạo sản phẩm" id="register" class="btn-primary"/>
            <div class="error hide"></div>
            @{
                var status = ViewBag.Status;
                if (status != null)
                {
                    if (status == 0)
                    {
                        <div class="success">Thêm sản phẩm thành công</div>
                    }
                    else if (status == 2)
                    {
                        <div class="error">Mã sản phẩm tồn tại</div>
                    }
                    else if (status == 3)
                    {
                        <div class="error">Tên sản phẩm tồn tại</div>
                    }
                    else if (status == 4)
                    {
                        <div class="error">Mã danh mục tồn tại</div>
                    }
                    else if (status == 5)
                    {
                        <div class="error">Tên danh mục tồn tại</div>
                    }
                }
            }
            
        </div>
    }
    </div>
    </div>
</section>
@section scripts {
    @Scripts.Render("~/bundles/jqueryval")

    <script type="text/javascript">

        $(function () {
            $('.currency').autoNumeric('init');

            $('.success').bind('click', function () {
                $(this).addClass('hide');
            });

            $('#add-type').bind('click', function (e) {
                var group = $('#group-type');
                if (group.hasClass('hide')) {
                    $('#isCreateNewType').val(1);
                    group.slideDown('fast', function () {
                        $(this).removeClass('hide');
                        $('#ProductType').hide();
                        //$('#isCreateNewType').hide();
                    });
                }
                else {
                    $('#isCreateNewType').val(0);
                    group.slideUp('fast', function () {
                        $(this).addClass('hide');
                        $('#ProductType').show();
                        //$('#isCreateNewType').show();
                    });
                }
                e.preventDefault();
            });

            $('#register').bind('click', function () {
                var isNewType = $('#isCreateNewType').val() == '0' ? false : true;
                var typeCode = $('#ProductTypeCode').val();
                var typeName = $('#ProductTypeName').val();
                var code = $('#Code').val();
                var name = $('#Name').val();
                var description = $('#Description').val();
                var price = $('.currency').autoNumeric('get');
                var file = $('#file');

                if (isNewType) {
                    var isValidTypeCode = CheckCode(typeCode);
                    if (isValidTypeCode == false) {
                        var error = $('.error');
                        error.html('Mã danh mục chỉ cho phép chữ và số. <br/>Ví dụ: DanhMuc01, DanhMuc_01, DanhMuc-01');
                        error.addClass('hide');
                        return false;
                    };
                }

                var isValidCode = CheckCode(code);
                if (isValidCode == false) {
                    var error = $('.error');
                    error.html('Mã sản phẩm chỉ cho phép chữ và số. <br/>Ví dụ: SanPham01, SanPham_01, SanPham-01');
                    error.addClass('hide');
                    return false;
                };


                if (name.trim() == '') {
                    var error = $('.error');
                    error.html('Tên sản phẩm không được để trống');
                    error.addClass('hide');
                    return false;
                }

                if (description.trim() == '') {
                    var error = $('.error');
                    error.html('Miêu tả sản phẩm không được để trống');
                    error.addClass('hide');
                    return false;
                }

                if (price.trim() == '') {
                    var error = $('.error');
                    error.html('Giá tiền không được để trống');
                    error.addClass('hide');
                    return false;
                }

                if (file.val() == '') {
                    var error = $('.error');
                    error.html('Vui lòng chọn hình ảnh');
                    error.addClass('hide');
                    return false;
                }

                return true;
            });

            function CheckCode(code) {
                var alphabel = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-';
                if (code.trim() == '') return false;

                for (var i = 0; i < code.length; i++) {
                    var isValid = false;
                    for (var j = 0; j < alphabel.length; j++) {
                        if (code[i] == alphabel[j]) {
                            isValid = true;
                            break;
                        }
                    }

                    if (isValid == false) return false;
                }

                return true;
            }
        });
    </script>
}